{
  lib,
  stdenv,
  fetchFromGitHub,
  autoconf,
  automake,
  which,
  procps,
  kbd,
  nixosTests,
}:

stdenv.mkDerivation {
  pname = "logkeys";
  version = "2018-01-22";

  src = fetchFromGitHub {
    owner = "kernc";
    repo = "logkeys";
    rev = "7a9f19fb6b152d9f00a0b3fe29ab266ff1f88129";
    sha256 = "1k6kj0913imwh53lh6hrhqmrpygqg2h462raafjsn7gbd3vkgx8n";
  };

  nativeBuildInputs = [
    autoconf
    automake
  ];
  buildInputs = [
    which
    procps
    kbd
  ];

  postPatch = ''
    substituteInPlace src/Makefile.am --replace 'root' '$(id -u)'
    substituteInPlace configure.ac --replace '/dev/input' '/tmp'
    sed -i '/chmod u+s/d' src/Makefile.am
  '';

  preConfigure = "./autogen.sh";

  passthru.tests.nixos = nixosTests.logkeys;

  meta = with lib; {
    description = "GNU/Linux keylogger that works";
    license = licenses.gpl3;
    homepage = "https://github.com/kernc/logkeys";
    maintainers = with maintainers; [
      mikoim
      offline
    ];
    platforms = platforms.linux;
  };
}
